unit FuncoesApoio;

interface

Procedure CapturaDadosProgamadosECF(Tipo:Integer);
Procedure WaitProcess;
Procedure HabilitaDesabilitaItensMenu(Situacao:Integer);
Procedure VerificaRetornoFuncao(var vRetorno:integer);
procedure VerificaRetornoImpressora();
Procedure LimpaMensagem1;
Procedure LimpaMensagem2;

implementation
uses principal, declaracoes,Dialogs,SysUtils, Graphics,controls,Windows, math,idGlobal ;


Procedure CapturaDadosProgamadosECF(Tipo:Integer);
// Se tipo = 1 ---> Captura Alíquotas
// Se Tipo = 2 ---> Captura Legendas Meios de Pagamento
// Se Tipo = 3 ---> Captura Alíquotas com Índice
// Se Tipo = 4 ---> Captura Totalizadores Não Fiscais MFD
// Se Tipo = 5 ---> Captura Nomes dos Relatorio Gerencial
// Se Tipo = 6 ---> Captura Totais das Formas de Pagamento
// Se Tipo = 7 ---> Captura Totais da VEnda (X)
begin
        Resposta:=0;
        case tipo of
        1: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Alíquotas'; WaitProcess;
                Resposta:=ECF_RetornoAliquotas(Conteudo);
                CopyMemory(@Aliquotas_ICMS_ISS,@Conteudo,300);
        end;
        2: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Meios de Pagamento'; WaitProcess;
                Resposta:=ECF_VerificaDescricaoFormasPagamento(Conteudo);
                CopyMemory(@MeiosPagamento,@Conteudo,300);
        end;
        3: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Alíquotas'; WaitProcess;
                Resposta:=ECF_LerAliquotasComIndice(Conteudo);
                CopyMemory(@cTributacoes,@Conteudo,300);
        end;
        4: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Totalizadores Não Fiscais'; WaitProcess;
                Resposta:=ECF_VerificaTotalizadoresNaoFiscaisEx(Conteudo);
                CopyMemory(@NaoFiscais,@Conteudo,300);
        end;
        5: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Relatório Gerencial'; WaitProcess;
                Resposta:=ECF_VerificaRelatorioGerencialProgMFD(Conteudo);
                CopyMemory(@RelatorioGer,@Conteudo,300);
        end;
        6: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Totais Formas Pagamento'; WaitProcess;
                Resposta:=ECF_VerificaFormasPagamento(Conteudo);
                CopyMemory(@TotaisPagamento,@Conteudo,3016);
        end;
        7: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Totais Formas Pagamento'; WaitProcess;
                Resposta:=ECF_TotaisVenda(Conteudo);
                CopyMemory(@TotaisX,@Conteudo,620);
        end;
        8: begin
                FormPrincipal.Statusbar1.Panels[0].Text:='Capturando Totais Não Fiscais'; WaitProcess;
                Resposta:=ECF_VerificaRecebimentoNaoFiscalMFD(Conteudo);
                CopyMemory(@TotaisNaoFiscais,@Conteudo,3016);
        end;
        end;
        HabilitaDesabilitaItensMenu(1);
end;

Procedure WaitProcess;
begin
        HabilitaDesabilitaItensMenu(0); // Desabilita menu
        FormPrincipal.Statusbar1.Panels[1].Text:='Aguarde ...';
        FormPrincipal.Cursor:=crHourGlass;
        FormPrincipal.Refresh;
end;

procedure HabilitaDesabilitaItensMenu(Situacao:Integer);
// 0 =desabilita e 1 = habilita
begin
    if situacao= 0 then FormPrincipal.Enabled:=False
    else  FormPrincipal.Enabled:=True;

end;

Procedure VerificaRetornoFuncao(var vRetorno:integer);
Begin
  if vRetorno = 1 then begin
        FormPrincipal.StatusBar1.Panels[1].Text:='Comando Executado com sucesso!';
        FormPrincipal.StatusBar2.Panels[0].Text:='';FormPrincipal.StatusBar2.Panels[1].Text:='';FormPrincipal.StatusBar2.Panels[2].Text:='';
        HabilitaDesabilitaItensMenu(1);
  end
  else if vRetorno = 0 then begin
        FormPrincipal.StatusBar1.Panels[1].Text:='Comando não executado!';
        HabilitaDesabilitaItensMenu(1);
  end
  else begin
        FormPrincipal.StatusBar1.Panels[1].Text:=' ';
        VerificaRetornoImpressora();
  end;
  FormPrincipal.cursor:=crDefault;
  FormPrincipal.Refresh;
End;


procedure VerificaRetornoImpressora();
var sack,St1,St2,St3,indice:integer;
    mensagem:string;
Begin
    LimpaMensagem2;
    Sack:=0;ST1:=0;ST2:=0;ST3:=0;indice:=0;
    Resposta := ECF_RetornoImpressoraMFD(sack,St1,St2,St3);
    if Resposta=0  then  FormPrincipal.StatusBar1.Panels[2].Text:='Falha na Execução do comando';

    if st1>0 then begin
            try
                    indice:=Strtoint(floattostr(log2(strtofloat(inttostr(st1)))));
            except
            end;
            FormPrincipal.StatusBar2.Panels[0].Text:=inttostr(ST1)+'-'+Mens_St1[indice];//Refresh;
    end;
    if st2>0 then begin
            try
                    indice:=Strtoint(floattostr(log2(strtofloat(inttostr(st2)))));
            except
            end;
            FormPrincipal.StatusBar2.Panels[1].Text:=inttostr(ST2)+'-'+Mens_St2[indice];//Refresh;

{                bValor:= IntToBin(st1);

                if bvalor[25]='1' then FormStatusECF.Label8.Font.Color:=clRed;
                if bvalor[26]='1' then FormStatusECF.Label9.Font.Color:=clRed;
                if bvalor[27]='1' then FormStatusECF.Label10.Font.Color:=clRed;
                if bvalor[29]='1' then FormStatusECF.Label11.Font.Color:=clRed;
                if bvalor[30]='1' then FormStatusECF.Label12.Font.Color:=clRed;
                if bvalor[31]='1' then FormStatusECF.Label13.Font.Color:=clRed;

                bValor:= IntToBin(St2);
                if bvalor[26]='1' then FormStatusECF.Label19.Font.Color:=clRed;
                if bvalor[27]='1' then FormStatusECF.Label18.Font.Color:=clRed;
                if bvalor[28]='1' then FormStatusECF.Label17.Font.Color:=clRed;
                if bvalor[29]='1' then FormStatusECF.Label16.Font.Color:=clRed;
                if bvalor[30]='1' then FormStatusECF.Label15.Font.Color:=clRed;
                if bvalor[31]='1' then FormStatusECF.Label14.Font.Color:=clRed;
                if bvalor[32]='1' then FormStatusECF.Label21.Font.Color:=clRed;
 }

    end;
    case st3 of
    0:   mensagem:='COMANDO OK';
    1:   mensagem:='COMANDO INVÁLIDO';
    2:   mensagem:='ERRO DESCONHECIDO';
    3:   mensagem:='NÚMERO DE PARÂMETRO INVÁLIDO';
    4:   mensagem:='TIPO DE PARÂMETRO INVÁLIDO';
    5:   mensagem:='TODAS ALÍQUOTAS JÁ PROGRAMADAS';
    6:   mensagem:='TOTALIZADOR NÃO FISCAL JÁ PROGRAMADO';
    7:   mensagem:='CUPOM FISCAL ABERTO';
    8:   mensagem:='CUPOM FISCAL FECHADO';
    9:   mensagem:='ECF OCUPADO';
    10:  mensagem:='IMPRESSORA EM ERRO';
    11:   mensagem:='IMPRESSORA SEM PAPEL';
    12:   mensagem:='IMPRESSORA COM CABEÇA LEVANTADA';
    13:   mensagem:='IMPRESSORA OFF LINE';
    14:   mensagem:='ALÍQUOTA NÃO PROGRAMADA';
    15:   mensagem:='TERMINADOR DE STRING FALTANDO';
    16:   mensagem:='ACRÉSCIMO OU DESCONTO MAIOR QUE O TOTAL DO CUPOM FISCAL';
    17:   mensagem:='CUPOM FISCAL SEM ITEM VENDIDO';
    18:   mensagem:='COMANDO NÃO EFETIVADO';
    19:   mensagem:='SEM ESPAÇO PARA NOVAS FORMAS DE PAGAMENTO';
    20:   mensagem:='FORMA DE PAGAMENTO NÃO PROGRAMADA';
    21:   mensagem:='ÍNDICE MAIOR QUE NÚMERO DE FORMA DE PAGAMENTO';
    22:   mensagem:='FORMAS DE PAGAMENTO ENCERRADAS';
    23:   mensagem:='CUPOM NÃO TOTALIZADO';
    24:   mensagem:='COMANDO MAIOR QUE 7Fh (127d)';
    25:   mensagem:='CUPOM FISCAL ABERTO E SEM ÍTEM';
    26:   mensagem:='CANCELAMENTO NÃO IMEDIATAMENTE APÓS';
    27:   mensagem:='CANCELAMENTO JÁ EFETUADO';
    28:   mensagem:='COMPROVANTE DE CRÉDITO OU DÉBITO NÃO PERMITIDO OU JÁ EMITIDO';
    29:   mensagem:='MEIO DE PAGAMENTO NÃO PERMITE TEF';
    30:   mensagem:='SEM COMPROVANTE NÃO FISCAL ABERTO';
    31:   mensagem:='COMPROVANTE DE CRÉDITO OU DÉBITO JÁ ABERTO';
    32:   mensagem:='REIMPRESSÃO NÃO PERMITIDA';
    33:   mensagem:='COMPROVANTE NÃO FISCAL JÁ ABERTO';
    34:   mensagem:='TOTALIZADOR NÃO FISCAL NÃO PROGRAMADO';
    35:   mensagem:='CUPOM NÃO FISCAL SEM ÍTEM VENDIDO';
    36:   mensagem:='ACRÉSCIMO E DESCONTO MAIOR QUE TOTAL CNF';
    37:   mensagem:='MEIO DE PAGAMENTO NÃO INDICADO';
    38:   mensagem:='MEIO DE PAGAMENTO DIFERENTE DO TOTAL DO RECEBIMENTO';
    39:   mensagem:='NÃO PERMITIDO MAIS DE UMA SANGRIA OU SUPRIMENTO';
    40:   mensagem:='RELATÓRIO GERENCIAL JÁ PROGRAMADO';
    41:   mensagem:='RELATÓRIO GERENCIAL NÃO PROGRAMADO';
    42:   mensagem:='RELATÓRIO GERENCIAL NÃO PERMITIDO';
    43:   mensagem:='MFD NÃO INICIALIZADA';
    44:   mensagem:='MFD AUSENTE';
    45:   mensagem:='MFD SEM NÚMERO DE SÉRIE';
    46:   mensagem:='MFD JÁ INICIALIZADA';
    47:   mensagem:='MFD LOTADA';
    48:   mensagem:='CUPOM NÃO FISCAL ABERTO';
    49:   mensagem:='MEMÓRIA FISCAL DESCONECTADA';
    50:   mensagem:='MEMÓRIA FISCAL SEM NÚMERO DE SÉRIE DA MFD';
    51:   mensagem:='MEMÓRIA FISCAL LOTADA';
    52:   mensagem:='DATA INICIAL INVÁLIDA';
    53:   mensagem:='DATA FINAL INVÁLIDA';
    54:   mensagem:='CONTADOR DE REDUÇÃO Z INICIAL INVÁLIDO';
    55:   mensagem:='CONTADOR DE REDUÇÃO Z FINAL INVÁLIDO';
    56:   mensagem:='ERRO DE ALOCAÇÃO';
    57:   mensagem:='DADOS DO RTC INCORRETOS';
    58:   mensagem:='DATA ANTERIOR AO ÚLTIMO DOCUMENTO EMITIDO';
    59:   mensagem:='FORA DE INTERVENÇÃO TÉCNICA';
    60:   mensagem:='EM INTERVENÇÃO TÉCNICA';
    61:   mensagem:='ERRO NA MEMÓRIA DE TRABALHO';
    62:   mensagem:='JÁ HOUVE MOVIMENTO NO DIA';
    63:   mensagem:='BLOQUEIO POR RZ';
    64:   mensagem:='FORMA DE PAGAMENTO ABERTA';
    65:   mensagem:='AGUARDANDO PRIMEIRO PROPRIETÁRIO';
    66:   mensagem:='AGUARDANDO RZ';
    67:   mensagem:='ECF OU LOJA IGUAL A ZERO';
    68:   mensagem:='CUPOM ADICIONAL NÃO PERMITIDO';
    69:   mensagem:='DESCONTO MAIOR QUE TOTAL VENDIDO EM ICMS';
    70:   mensagem:='RECEBIMENTO NÃO FISCAL NULO NÃO PERMITIDO';
    71:   mensagem:='ACRÉSCIMO OU DESCONTO MAIOR QUE TOTAL NÃO FISCAL';
    72:   mensagem:='MEMÓRIA FISCAL LOTADA PARA NOVO CARTUCHO';
    73:   mensagem:='ERRO DE GRAVAÇÃO NA MF';
    74:   mensagem:='ERRO DE GRAVAÇÃO NA MFD';
    75:   mensagem:='DADOS DO RTC ANTERIORES AO ÚLTIMO DOC ARMAZENADO';
    76:   mensagem:='MEMÓRIA FISCAL SEM ESPAÇO PARA GRAVAR LEITURAS DA MFD';
    77:   mensagem:='MEMÓRIA FISCAL SEM ESPAÇO PARA GRAVAR VERSAO DO SB';
    78:   mensagem:='DESCRIÇÃO IGUAL A DEFAULT NÃO PERMITIDO';
    79:   mensagem:='EXTRAPOLADO NÚMERO DE REPETIÇÕES PERMITIDAS';
    80:   mensagem:='SEGUNDA VIA DO COMPROVANTE DE CRÉDITO OU DÉBITO NÃO PERMITIDO';
    81:   mensagem:='PARCELAMENTO FORA DA SEQUÊNCIA';
    82:   mensagem:='COMPROVANTE DE CRÉDITO OU DÉBITO ABERTO';
    83:   mensagem:='TEXTO COM SEQUÊNCIA DE ESC INVÁLIDA';
    84:   mensagem:='TEXTO COM SEQUÊNCIA DE ESC INCOMPLETA';
    85:   mensagem:='VENDA COM VALOR NULO';
    86:   mensagem:='ESTORNO DE VALOR NULO ';
    87:   mensagem:='FORMA DE PAGAMENTO DIFERENTE DO TOTAL DA SANGRIA';
    88:   mensagem:='REDUÇÃO NÃO PERMITIDA EM INTERVENÇÃO TÉCNICA';
    89:   mensagem:='AGUARDANDO RZ PARA ENTRADA EM INTERVENÇÃO TÉCNICA';
    90:   mensagem:='FORMA DE PAGAMENTO COM VALOR NULO NÃO PERMITIDO';
    91:   mensagem:='ACRÉSCIMO E DESCONTO MAIOR QUE VALOR DO ÍTEM';
    92:   mensagem:='AUTENTICAÇÃO NÃO PERMITIDA';
    93:   mensagem:='TIMEOUT NA VALIDAÇÃO';
    94:   mensagem:='COMANDO NÃO EXECUTADO EM IMPRESSORA BILHETE DE PASSAGEM';
    95:   mensagem:='COMANDO NÃO EXECUTADO EM IMPRESSORA DE CUPOM FISCAL';
    96:   mensagem:='CUPOM NÃO FISCAL FECHADO';
    97:   mensagem:='PARÂMETRO NÃO ASCII EM CAMPO ASCII';
    98:   mensagem:='PARÂMETRO NÃO ASCII NUMÉRICO EM CAMPO ASCII NUMÉRICO';
    99:   mensagem:='TIPO DE TRANSPORTE INVÁLIDO';
    100:  mensagem:='DATA E HORA INVÁLIDA';
    101:  mensagem:='SEM RELATÓRIO GERENCIAL OU COMPROVANTE DE CRÉDITO OU DÉBITO ABERTO';
    102:  mensagem:='NÚMERO DO TOTALIZADOR NÃO FISCAL INVÁLIDO';
    103:  mensagem:='PARÂMETRO DE ACRÉSCIMO OU DESCONTO INVÁLIDO';
    104:  mensagem:='ACRÉSCIMO OU DESCONTO EM SANGRIA OU SUPRIMENTO NÃO PERMITIDO';
    105:  mensagem:='NÚMERO DO RELATÓRIO GERENCIAL INVÁLIDO';
    106:  mensagem:='FORMA DE PAGAMENTO ORIGEM NÃO PROGRAMADA';
    107:  mensagem:='FORMA DE PAGAMENTO DESTINO NÃO PROGRAMADA';
    108:  mensagem:='ESTORNO MAIOR QUE FORMA PAGAMENTO';
    109:  mensagem:='CARACTER NUMÉRICO NA CODIFICAÇÃO GT NÃO PERMITIDO';
    110:  mensagem:='ERRO NA INICIALIZAÇÃO DA MF';
    111:  mensagem:='NOME DO TOTALIZADOR EM BRANCO NÃO PERMITIDO';
    112:  mensagem:='DATA E HORA ANTERIORES AO ÚLTIMO DOC ARMAZENADO';
    113:  mensagem:='PARÂMETRO DE ACRÉSCIMO OU DESCONTO INVÁLIDO';
    114:  mensagem:='ÍTEM ANTERIOR AOS TREZENTOS ÚLTIMOS';
    115:  mensagem:='ÍTEM NÃO EXISTE OU JÁ CANCELADO';
    116:  mensagem:='CÓDIGO COM ESPAÇOS NÃO PERMITIDO';
    117:  mensagem:='DESCRICAO SEM CARACTER ALFABÉTICO NÃO PERMITIDO';
    118:  mensagem:='ACRÉSCIMO MAIOR QUE VALOR DO ÍTEM';
    119:  mensagem:='DESCONTO MAIOR QUE VALOR DO ÍTEM';
    120:  mensagem:='DESCONTO EM ISS NÃO PERMITIDO';
    121:  mensagem:='ACRÉSCIMO EM ÍTEM JÁ EFETUADO';
    122:  mensagem:='DESCONTO EM ÍTEM JÁ EFETUADO';
    123:  mensagem:='ERRO NA MEMÓRIA FISCAL CHAMAR CREDENCIADO';
    124:  mensagem:='AGUARDANDO GRAVAÇÃO NA MEMÓRIA FISCAL';
    125:  mensagem:='CARACTER REPETIDO NA CODIFICAÇÃO DO GT';
    126:  mensagem:='VERSÃO JÁ GRAVADA NA MEMÓRIA FISCAL';
    127:  mensagem:='ESTOURO DE CAPACIDADE NO CHEQUE';
    128:  mensagem:='TIMEOUT NA LEITURA DO CHEQUE';
    129:  mensagem:='MÊS INVÁLIDO';
    130:  mensagem:='COORDENADA INVÁLIDA';
    131:  mensagem:='SOBREPOSIÇÃO DE TEXTO';
    132:  mensagem:='SOBREPOSIÇÃO DE TEXTO NO VALOR';
    133:  mensagem:='SOBREPOSIÇÃO DE TEXTO NO EXTENSO';
    134:  mensagem:='SOBREPOSIÇÃO DE TEXTO NO FAVORECIDO';
    135:  mensagem:='SOBREPOSIÇÃO DE TEXTO NA LOCALIDADE';
    136:  mensagem:='SOBREPOSIÇÃO DE TEXTO NO OPCIONAL';
    137:  mensagem:='SOBREPOSIÇÃO DE TEXTO NO DIA';
    138:  mensagem:='SOBREPOSIÇÃO DE TEXTO NO MÊS';
    139:  mensagem:='SOBREPOSIÇÃO DE TEXTO NO ANO';
    140:  mensagem:='USANDO MFD DE OUTRO ECF';
    141:  mensagem:='PRIMEIRO DADO DIFERENTE DE ESC OU 1C';
    142:  mensagem:='NÃO PERMITIDO ALTERAR SEM INTERVENÇÃO TÉCNICA';
    143:  mensagem:='DADOS DA ÚLTIMA RZ CORROMPIDOS';
    144:  mensagem:='COMANDO NÃO PERMITIDO NO MODO INICIALIZAÇÃO';
    145:  mensagem:='AGUARDANDO ACERTO DE RELÓGIO';
    146:  mensagem:='MFD JÁ INICIALIZADA PARA OUTRA MF';
    147:  mensagem:='AGUARDANDO ACERTO DO RELÓGIO OU DESBLOQUEIO PELO TECLADO';
    148:  mensagem:='VALOR FORMA DE PAGAMENTO MAIOR QUE MÁXIMO PERMITIDO';
    149:  mensagem:='RAZÃO SOCIAL EM BRANCO';
    150:  mensagem:='NOME DE FANTASIA EM BRANCO';
    151:  mensagem:='ENDEREÇO EM BRANCO';
    152:  mensagem:='ESTORNO DE CDC NÃO PERMITIDO';
    153:  mensagem:='DADOS DO PROPRIETÁRIO IGUAIS AO ATUAL';
    154:  mensagem:='ESTORNO DE FORMA DE PAGAMENTO NÃO PERMITIDO';
    155:  mensagem:=' DESCRIÇÃO FORMA DE PAGAMENTO IGUAL JÁ PROGRAMADA';
    156:  mensagem:='ACERTO DE HORÁRIO DE VERÃO SÓ IMEDIATAMENTE APÓS RZ';
    157:  mensagem:='IT NÃO PERMITIDA MF RESERVADA PARA RZ';
    158:  mensagem:='SENHA CNPJ INVÁLIDA';
    159:  mensagem:='TIMEOUT NA INICIALIZAÇÃO DA NOVA MF';
    160:  mensagem:='NÃO ENCONTRADO DADOS NA MFD';
    161:  mensagem:='SANGRIA OU SUPRIMENTO DEVEM SER ÚNICOS NO CNF';
    162:  mensagem:='ÍNDICE DA FORMA DE PAGAMENTO NULO NÃO PERMITIDO';
    163:  mensagem:='UF DESTINO INVÁLIDA';
    164:  mensagem:='TIPO DE TRANSPORTE INCOMPATÍVEL COM UF DESTINO';
    165:  mensagem:='DESCRIÇÃO DO PRIMEIRO ÍTEM DO BILHETE DE PASSAGEM DIFERENTE DE "TARIFA"';
    166:  mensagem:='AGUARDANDO IMPRESSÃO DE CHEQUE OU AUTENTICAÇÃO';
    167:  mensagem:='NÃO PERMITIDO PROGRAMAÇAO CNPJ IE COM ESPAÇOS EM BRANCO';
    168:  mensagem:='NÃO PERMITIDO PROGRAMAÇÃO UF COM ESPAÇOS EM BRANCO';
    169:  mensagem:='NÚMERO DE IMPRESSÕES DA FITA DETALHE NESTA INTERVENÇÃO TÉCNICA ESGOTADO';
    170:  mensagem:='CF JÁ SUBTOTALIZADO';
    171:  mensagem:='CUPOM NÃO SUBTOTALIZADO';
    172:  mensagem:='ACRÉSCIMO EM SUBTOTAL JÁ EFETUADO';
    173:  mensagem:='DESCONTO EM SUBTOTAL JÁ EFETUADO';
    174:  mensagem:='ACRÉSCIMO NULO NÃO PERMITIDO';
    175:  mensagem:='DESCONTO NULO NÃO PERMITIDO';
    176:  mensagem:='CANCELAMENTO DE ACRÉSCIMO OU DESCONTO EM SUBTOTAL NÃO PERMITIDO';
    177:  mensagem:='DATA INVÁLIDA';
    178:  mensagem:='VALOR DO CHEQUE NULO NÃO PERMITIDO';
    179:  mensagem:='VALOR DO CHEQUE INVÁLIDO';
    180:  mensagem:='CHEQUE SEM LOCALIDADE NÃO PERMITIDO';
    181:  mensagem:='CANCELAMENTO ACRÉSCIMO EM ÍTEM NÃO PERMITIDO';
    182:  mensagem:='CANCELAMENTO DESCONTO EM ÍTEM NÃO PERMITIDO';
    183:  mensagem:='NÚMERO MÁXIMO DE ÍTENS ATINGIDO';
    184:  mensagem:='NÚMERO DE ÍTEM NULO NÃO PERMITIDO';
    185:  mensagem:='MAIS QUE DUAS ALÍQUOTAS DIFERENTES NO BILHETE DE PASSAGEM NÃO PERMITIDO';
    186:  mensagem:='ACRÉSCIMO OU DESCONTO EM ITEM NÃO PERMITIDO';
    187:  mensagem:='CANCELAMENTO DE ACRÉSCIMO OU DESCONTO EM ITEM NÃO PERMITIDO';
    188:  mensagem:='CLICHE JÁ IMPRESSO';
    189:  mensagem:='TEXTO OPCIONAL DO CHEQUE EXCEDEU O MÁXIMO PERMITIDO';
    190:  mensagem:='IMPRESSÃO AUTOMÁTICA NO VERSO NÃO PERMITIDO NESTE EQUIPAMENTO';
    191:  mensagem:='TIMEOUT NA INSERÇÃO DO CHEQUE';
    192:  mensagem:='OVERFLOW NA CAPACIDADE DE TEXTO DO COMPROVANTE DE CRÉDITO OU DÉBITO';
    193:  mensagem:='PROGRAMAÇÃO DE ESPAÇOS ENTRE CUPONS MENOR QUE O MÍNIMO PERMITIDO';
    194:  mensagem:='EQUIPAMENTO NÃO POSSUI LEITOR DE CHEQUE';
    195:  mensagem:='PROGRAMAÇÃO DE ALÍQUOTA COM VALOR NULO NÃO PERMITIDO';
    196:  mensagem:='PARÂMETRO BAUD RATE INVÁLIDO';
    197:  mensagem:='CONFIGURAÇÃO PERMITIDA SOMENTE PELA PORTA DOS FISCO';
    198:  mensagem:='VALOR TOTAL DO ITEM EXCEDE 11 DÍGITOS';
    199:  mensagem:='PROGRAMAÇÃO DA MOEDA COM ESPAÇOS EM BRACO NÃO PERMITIDO';
    200:  mensagem:='CASAS DECIMAIS DEVEM SER PROGRAMADAS COM 2 OU 3';
    201:  mensagem:='NÃO PERMITE CADASTRAR USUÁRIOS DIFERENTES NA MESMA MFD';
    202:  mensagem:='IDENTIFICAÇÃO DO CONSUMIDOR NÃO PERMITIDA PARA SANGRIA OU SUPRIMENTO';
    203:  mensagem:='CASAS DECIMAIS EM QUANTIDADE MAIOR DO QUE A PERMITIDA';
    204:  mensagem:='CASAS DECIMAIS DO UNITÁRIO MAIOR DO QUE O PERMITIDA';
    205:  mensagem:='POSIÇÃO RESERVADA PARA ICMS';
    206:  mensagem:='POSIÇÃO RESERVADA PARA ISS';
    207:  mensagem:='TODAS AS ALÍQUOTAS COM A MESMA VINCULAÇÃO NÃO PERMITIDO';
    208:  mensagem:='DATA DE EMBARQUE ANTERIOR A DATA DE EMISSÃO';
    end;
    FormPrincipal.StatusBar2.Panels[2].Text:=inttostr(ST3)+'-'+mensagem;
End;

procedure LimpaMensagem1;
begin
        FormPrincipal.StatusBar1.Panels[0].text:='';
        FormPrincipal.StatusBar1.Panels[1].text:='';
        FormPrincipal.StatusBar1.Panels[2].text:='';
end;
procedure LimpaMensagem2;
begin
        FormPrincipal.StatusBar2.Panels[0].text:='';
        FormPrincipal.StatusBar2.Panels[1].text:='';
        FormPrincipal.StatusBar2.Panels[2].text:='';
end;


end.
